package com.itfenghuang.day09;

import java.io.File;
import java.io.IOException;

public class A04_File类 {
    public static void main(String[] args) throws IOException {

    /*
        1.概述
            数据存储在:数组,集合,变量,对象,数据库
            IO流
        2.File类的作用: 创建/删除文件夹
        3.对文件操作的前提:   知道文件在哪里
        4.常用构造方法?
            public File(String pathname)根据路径字符串创建File对象
            public File(String parent,
            String child)从父路径名字符串和子路径名字符串创建新的File实例。
            public File(File parent,
            String child)从父抽象路径名和子路径名字符串创建新的File实例
        5.File解释:
            1).文件和目录路径名的抽象表示
            2).文件和目录都可以通过File类封装成对象
            3).File封装的并不是一个真正存在的文件/文件夹,仅仅是一个路径名而已
        6.相对路径和绝对路径
            相对路径:相对于当前项目的路径    项目:idea中的一个工程
            绝对路径:从盘符开始的  例  E:\baoxiaodan\重庆项目报销单
        7.创建方法
            public boolean createNewFile()创建文件,如果不存在就创建成功    不存在就创建失败
            public boolean mkidr()创建单级文件夹
            public boolean mkidrs()创建多级文件夹
        8.删除方法
            public boolean delete()删除文件\文件夹
        9.9.判断和获取方法
     获取方法
             public String getAbsolutePath()返回此抽象路径名的绝对路径名字符串。
             public String getName() 获取文件或文件夹的名称
             public String getParent() 获取父路径名
             public String getPath() 获取file构造参数的路径
             public File[] listFiles() 获取抽象路径名下的所有的子文件及子文件夹的File对象
              并存储到File数组中
             判断方法:
              public boolean exists() 判断文件/文件夹是否存在
              public boolean isDirectory() 判断是否是文件夹
              public boolean isFile() 判断是否是文件



     */
//        阿狗();
//        阿猫();//创建
//        阿鼠();//删除
        //获取绝对路径
//        获取();
//        判断方法();
        File file = new File("E:\\");
        File[] e = file.listFiles();
        System.out.println(e);

    }

    private static void 判断方法() {
        //        判断方法
//        File file = new File("E:\\itfenghuang\\hh");
////        boolean b = file.exists();
////        System.out.println(b);
//        boolean c = file.isDirectory();//判断是否是文件夹
//        System.out.println(c);
//        boolean v = file.isFile();
//        System.out.println(v);//判断是否有文件
    }

    private static void 获取() {
        File file = new File("E:\\itfenghuang\\hh");
        String path = file.getAbsolutePath();
        System.out.println(path);
        //获取文件\文件夹的名字
        String name = file.getName();
        System.out.println(name);
        String parent = file.getParent();
        System.out.println(parent);
        File f1 = new File("a.txt");
        System.out.println(f1.getPath());
        System.out.println(f1.getAbsolutePath());
    }

    private static void 阿鼠() {
        File file = new File("E:\\itfenghuang\\hh\\a.txt");//删除文件夹
//        注:如果删除文件夹,该文件夹必须为空
    }
//    创建文件夹以及文件
//    private static void 阿猫() {
//        File file = new File("E:\\itfenghuang\\hh\\a.txt");
//        boolean a = file.createNewFile();//创建文件
//        System.out.println(a);
//        System.out.println(file.mkdirs());//创建多级文件夹
//    }

    private static void 阿狗() {
        File file = new File("E:\\baoxiaodan\\重庆项目报销单");
        System.out.println(file);
//        两个参数的构造方法,将两个路径进行拼接
        File f = new File("D:\\", "凸(艹皿艹 )");
        System.out.println(f);
        File f1 = new File(f, "床笫");
        System.out.println(f1);
        File f2 = new File("a.txt");//相对路径
        System.out.println(f2);
    }
}
